One object of the data stream processing in the network is to provide plural advanced services that cannot coexist on a network node to plural users, and further to enable addition/deletion of a service and alteration of a content of the service during a network operation. In order to provide such a service with one physical network, it is required to virtualize the network, that is, to show as if the each user or each user group is using an independent network. In addition, in each network node, in order to process an advanced service, it is required to process a packet stream that is inputted from a communication line and is outputted to the communication line at a speed as close to a maximum transfer speed (wire speed) of the communication line as possible.
There are the following four technologies as the conventional technologies that are usable for the data stream processing in a network.
As the first conventional technology, a computer that is capable of executing plural users' programs in parallel or by time division, i.e., in a parallel manner by time sharing can be enumerated. As a literature related to a time sharing system, there is John McCarthy, “REMINISCENCES ON THE HISTORY OF TIME DIVISION,” Stanford University, 1983 Winter or Spring, http://www-formal.stanford.edu/jmc/history/timesharing/time sharing.html
In a computer with a general purpose operating system (OS) based on the time sharing system, such as Linux (registered trademark) or Microsoft Windows (registered trademark), installed, common resources, such as a processor and memory, are virtualized and the each user can use them as if the user exclusively uses them. Processor resources are shared based on a task switch. That is, when plural processes and threads exist, the OS performs the task switch between them. It is possible to build a network node (so-called a software router), and to perform a stream data processing using such a computer.
However, since a register file and cache are purged in performing the task switch, it is necessary to reload the data and the program from DRAM (Dynamic Random Access Memory) immediately after the task switch. Because of a delay by this switching, a delay required to reload the data and the program, and a huge number of processing steps, it is impossible to perform the processing at a speed close to the wire speed.
As the second conventional technology, there is a virtualized software technology that builds a virtual environment for the each user by making the operating system different for the each user operate by time division on one piece of hardware. Egi, N., Greenhalgh, A., Handley, M., Hoerdt, M., Mathy, L., and Schooley, T., “Evaluating Xen for Router Virtualization,” 16th Int'l Conference on Computer Communications and Networks (ICCCN 2007), pp. 1256-1261, August 2007 describes a method of virtualizing hardware resources, such as a network interface, using virtualized software Xen (registered trademark) and realizing a virtualized node.
Also in the virtualized software technology, since the processor is used by time division like in the time sharing system, the problem generated by the task switch as described above is unsolvable. Moreover, in the network, although addresses of the third layer (IP layer) of a sender and an addressee are included in a packet used for communication, when the switch transfers the packet based on information of the second layer, an address of the switch for repeating the packet is not included in the packet. However, it is necessary to attach an address to the network interface in the virtual software technology in order to perform communication, and there is a problem that it is required to designate this address as an address of the packet.
As the third conventional technology, there is a physical device virtualization technology described in JP-T-2008-503015. JP-T-2008-503015 discloses the technology whereby inputted or outputted data is allocated to programs of the plural users and is processed by virtually multiplexing a single physical device. One example of the physical device is the network interface.
Since the processor is used by time division like the time sharing system also in the physical device virtualization technology, the problem generated by the task switch as described above cannot be solved. Moreover, a point that it is necessary to specify an address of the network interface that is virtually multiplexed as a destination of the packet poses a problem similarly.
As a fourth conventional technology, there is a programmable router and a switch. The conventional router and switch cannot be programmed by the user, but, contrary to this, programmable router and switch enable a program (s) to be given from the outside by allowing a network processor or FPGA (Field Programmable Gate Array) to be installed therein.
JP-T-2008-523729 describes a method of allocating an inputted packet to plural processor cores in which such programs operate.
However, since the program that the processor core executes is fixed in advance and a destination to which the packet is allocated is also fixed in this method, it is possible to perform neither addition/deletion of a service nor alteration of a service content during an operation of the network.